c2435f0f24b877f5041a532171dabcc1692ff79b,idea/src/org/jetbrains/jet/lang/parsing/JetParsing.java,JetParsing,parseProperty,#boolean#,762
Before Change
}
if (at(LT)) {
parseTypeParameterList(TokenSet.create(IDENTIFIER, EQ, COLON, SEMICOLON));
}
TokenSet propertyNameFollow = TokenSet.create(COLON, EQ, LBRACE, SEMICOLON);
After Change
errorAndAdvance("Expecting 'val' or 'var'");
}
boolean typeParametersDeclared = at(LT) ? parseTypeParameterList(TokenSet.create(IDENTIFIER, EQ, COLON, SEMICOLON)) : false;
TokenSet propertyNameFollow = TokenSet.create(COLON, EQ, LBRACE, SEMICOLON);
// TODO: extract constant
int lastDot = matchTokenStreamPredicate(new FirstBefore(
new AtSet(DOT, SAFE_ACCESS),
new AbstractTokenStreamPredicate() {
@Override
public boolean matching(boolean topLevel) {
if (topLevel && (at(EQ) || at(COLON))) return true;
if (topLevel && at(IDENTIFIER)) {
IElementType lookahead = lookahead(1);
return lookahead != LT && lookahead != DOT && lookahead != SAFE_ACCESS;
}
return false;
}
}));
parseReceiverType("property", propertyNameFollow, lastDot);
if (at(COLON)) {
advance(); // COLON
parseTypeRef();
}
parseTypeConstraintsGuarded(typeParametersDeclared);
if (local) {
if (at(EQ)) {